﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;
using MyTimeLine.Models.Views;
using MyTimeLine.Util;

namespace MyTimeLine.Controllers
{
    public class HomeController : BaseController
    {
        public HomeController()
        {
            TituloPagina = "Home";
        }
        public ActionResult Index()
        {
            ViewBag.CurrentMenu = "#mnuHome";
            ViewBag.Antes = "MyTimeLine.com.br".Criptografar();
            ViewBag.Depois = ((string)ViewBag.Antes).Descriptografar();
            return View();
        }

        public ActionResult About()
        {
            ViewBag.CurrentMenu = "#mnuAbout";
            return View("About");
        }

        [HttpGet]
        public ActionResult Contato()
        {
            //throw new HttpException(404, "Page not Found");
            //throw new Exception("TESTE");
            ViewBag.CurrentMenu = "#mnuContato";
            //ViewBag.TiposContato = new ContatoModel().ListarTiposContato();
            return View("Contato");
        }

        [HttpPost]
        public ActionResult Contato(ContatoModel contato)
        {
            ViewBag.CurrentMenu = "#mnuContato";
            //ViewBag.TiposContato = new ContatoModel().ListarTiposContato();

            //ViewBag.ValorTipoEmail = contato.ValorTipoEmail = Request.Form["tipoContato"];

            if (ModelState.IsValid)
            {
                contato.TipoContato = new ListItem(contato.ValorTipoEmail);

                #region Enviar Email

                string remetenteEmail = ConfigurationManager.AppSettings["RemetenteEmail"]; //O e-mail do remetente
                //string passwordEmail = ConfigurationManager.AppSettings["PasswordEmail"];

               /* SmtpClient client = new SmtpClient
                                        {
                                            Credentials = new NetworkCredential(remetenteEmail, passwordEmail),
                                            EnableSsl = false,
                                            Host = "smtp.mytimeline.com.br"
                                        };*/
                SmtpClient client = new SmtpClient();
                //Adicionando as credenciais do seu e-mail e senha:

                var mail = new MailMessage
                               {
                                   From = new MailAddress(remetenteEmail, "My Timeline", Encoding.UTF8),
                                   Subject =
                                       string.Format("Fale Conosco - {1} - Contato de {0}", contato.Nome,
                                                     contato.TipoContato.Text),
                                   SubjectEncoding = Encoding.UTF8,
                                   Body = string.Format(@"
Sr(a). {0}, <br /><br />
Obrigado por entrar em contato com o <a href='www.mytimeline.com.br'>My Timeline</a><br /><br />
Entraremos em contatoo mais breve possível<br /><br />

Sua Mensagem: <br />
Assunto: {2} <br />
<pre>
{1}
</pre>
<br /><br /><br />
Cordialmente,<br /><br />
Equipe My Timeline
",
                                           contato.Nome, contato.Mensagem, contato.TipoContato.Text),
                                   BodyEncoding = Encoding.UTF8,
                                   IsBodyHtml = true,
                                   Priority = MailPriority.Normal
                               };

                mail.To.Add(contato.Email);
                string[] destinataios = ConfigurationManager.AppSettings["DestinatariosEmail"].Split(',');
                    //O e-mails do destinatarios bcc
                foreach (var destinataio in destinataios)
                {
                    mail.Bcc.Add(destinataio);
                }


                try
                {
                    client.Send(mail);
                }
                catch
                {
                    //  so reporta erro se nao for debug para funcionar no ambiente de desenvolvimento
#if !DEBUG
                        throw;
#endif
                    
                    Console.WriteLine(mail.Body);
                }
                
                ShowGritterMessage("Contact", Mensagens.Contato_Sucesso_Envio_Email, MessagesType.Success);

                #endregion
            }

            return View("Contato", contato);
        }

        /*public ActionResult ContatoEnviado()
        {

            return View("ContatoEnviado");
        }*/
    }
}
